package com.ssy.lingxi.contract.model.vo.manage.request;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;

/**
 * 更新合同基础信息VO
 * @author 伍将
 * @date 2021/2/24
 * @version 2.0.0
 */
public class ContractBasicsUpdateVO implements Serializable {
    private static final long serialVersionUID = 1590024549201089912L;

    /**
     * 合同id（为0代表新增）
     */
    @NotNull(message = "合同id不能为空")
    private Long id;

    /**
     * 合同编号
     */
    @NotBlank(message = "合同编号不能为空")
    private String contractNo;

    /**
     * 合同摘要
     */
    @NotBlank(message = "合同摘要不能为空")
    private String contractAbstract;

    /**
     * 寻源类型：1.采购询价 2.采购招标 3.采购竞价
     */
    @NotNull(message = "寻源类型需大于0")
    @Positive(message = "寻源类型需大于0")
    private Integer sourceType;

    /**
     * 有效开始时间(yyyy-MM-dd)
     */
    @NotBlank(message = "有效开始时间不能为空")
    private String startTime;

    /**
     * 有效结束时间(yyyy-MM-dd 23:59:59)
     */
    @NotBlank(message = "有效结束时间不能为空")
    private String endTime;

    /**
     * 对应单据id
     */
    private Long sourceId;

    /**
     * 对应单据编号
     */
    private String sourceNo;

    /**
     * 授标金额
     */
    @NotNull(message = "授标金额需大于0")
    @Positive(message = "授标金额需大于0")
    private Double totalAmount;

    /**
     * 授标会员id
     */
    @NotNull(message = "授标会员id需大于0")
    @Positive(message = "授标会员id需大于0")
    private Long partyBMemberId;

    /**
     * 授标会员角色id
     */
    @NotNull(message = "授标会员角色id需大于0")
    @Positive(message = "授标会员角色id需大于0")
    private Long partyBRoleId;

    /**
     * 授标会员名称
     */
    @NotBlank(message = "授标会员名称不能为空")
    private String partyBName;

    /**
     * 变更合同id（为0代表不变更）
     */
    @NotNull(message = "变更合同id不能为空")
    private Long oldContractId;
    /**
     *采购类型:1.单词采购 2.协议采购
     */
    private Integer purchaseType;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getContractAbstract() {
        return contractAbstract;
    }

    public void setContractAbstract(String contractAbstract) {
        this.contractAbstract = contractAbstract;
    }

    public Integer getSourceType() {
        return sourceType;
    }

    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public Long getSourceId() {
        return sourceId;
    }

    public void setSourceId(Long sourceId) {
        this.sourceId = sourceId;
    }

    public String getSourceNo() {
        return sourceNo;
    }

    public void setSourceNo(String sourceNo) {
        this.sourceNo = sourceNo;
    }

    public Double getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public Long getPartyBMemberId() {
        return partyBMemberId;
    }

    public void setPartyBMemberId(Long partyBMemberId) {
        this.partyBMemberId = partyBMemberId;
    }

    public Long getPartyBRoleId() {
        return partyBRoleId;
    }

    public void setPartyBRoleId(Long partyBRoleId) {
        this.partyBRoleId = partyBRoleId;
    }

    public String getPartyBName() {
        return partyBName;
    }

    public void setPartyBName(String partyBName) {
        this.partyBName = partyBName;
    }

    public Long getOldContractId() {
        return oldContractId;
    }

    public void setOldContractId(Long oldContractId) {
        this.oldContractId = oldContractId;
    }

    public Integer getPurchaseType() {
        return purchaseType;
    }

    public void setPurchaseType(Integer purchaseType) {
        this.purchaseType = purchaseType;
    }
}
